#
# Makefile for racket basic sources
#

srcdir = @srcdir@
builddir = @builddir@

CC = @CC@

MZSRC = $(srcdir)

CFLAGS = @CFLAGS@ @COMPFLAGS@ @PROFFLAGS@
CPPFLAGS = @PREFLAGS@
RKTIO_INC = -I$(srcdir)/../../rktio -I../rktio
ALL_CFLAGS = $(CFLAGS) -I$(builddir)/.. -I$(srcdir)/../include -I$(srcdir)/../../version $(RKTIO_INC) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@
LTO=@LTO@ # Need for replacement of EXTRA_GMP_OBJ which carries the variable

OBJS =  salloc.@LTO@ \
	bignum.@LTO@ \
	bool.@LTO@ \
	char.@LTO@ \
	compenv.@LTO@ \
	compile.@LTO@ \
	complex.@LTO@ \
	dynext.@LTO@ \
	env.@LTO@ \
	error.@LTO@ \
	eval.@LTO@ \
	file.@LTO@ \
	fun.@LTO@ \
	future.@LTO@ \
        gmp.@LTO@ \
	hash.@LTO@ \
	jit.@LTO@ \
	jitalloc.@LTO@ \
	jitarith.@LTO@ \
	jitcall.@LTO@ \
	jitcommon.@LTO@ \
	jitinline.@LTO@ \
	jitprep.@LTO@ \
	jitstack.@LTO@ \
	jitstate.@LTO@ \
	letrec_check.@LTO@ \
	linklet.@LTO@ \
	list.@LTO@ \
	marshal.@LTO@ \
	mzrt.@LTO@ \
	network.@LTO@ \
	numarith.@LTO@ \
	number.@LTO@ \
	numcomp.@LTO@ \
	numstr.@LTO@ \
	optimize.@LTO@ \
	place.@LTO@ \
	port.@LTO@ \
	portfun.@LTO@ \
	print.@LTO@ \
        rational.@LTO@ \
	read.@LTO@ \
	regexp.@LTO@ \
	resolve.@LTO@ \
	sema.@LTO@ \
	setjmpup.@LTO@ \
	sfs.@LTO@ \
	sort.@LTO@ \
	startup.@LTO@ \
	string.@LTO@ \
	struct.@LTO@ \
	symbol.@LTO@ \
	syntax.@LTO@ \
	thread.@LTO@ \
	type.@LTO@ \
        unwind.@LTO@ \
        validate.@LTO@ \
	vector.@LTO@ \
	@EXTRA_GMP_OBJ@

SRCS =  $(srcdir)/salloc.c \
	$(srcdir)/bignum.c \
	$(srcdir)/bool.c \
	$(srcdir)/char.c \
	$(srcdir)/compenv.c \
	$(srcdir)/compile.c \
	$(srcdir)/complex.c \
	$(srcdir)/dynext.c \
	$(srcdir)/env.c \
	$(srcdir)/error.c \
	$(srcdir)/eval.c \
	$(srcdir)/file.c \
	$(srcdir)/fun.c \
	$(srcdir)/future.c \
	$(srcdir)/gmp/gmp.c \
	$(srcdir)/hash.c \
	$(srcdir)/jit.c \
	$(srcdir)/jitalloc.c \
	$(srcdir)/jitarith.c \
	$(srcdir)/jitcall.c \
	$(srcdir)/jitcommon.c \
	$(srcdir)/jitinline.c \
	$(srcdir)/jitprep.c \
	$(srcdir)/jitstack.c \
	$(srcdir)/jitstate.c \
	$(srcdir)/letrec_check.c \
	$(srcdir)/linklet.c \
	$(srcdir)/list.c \
	$(srcdir)/marshal.c \
	$(srcdir)/mzrt.c \
	$(srcdir)/network.c \
	$(srcdir)/numarith.c \
	$(srcdir)/number.c \
	$(srcdir)/numcomp.c \
	$(srcdir)/numstr.c \
	$(srcdir)/optimize.c \
	$(srcdir)/place.c \
	$(srcdir)/port.c \
	$(srcdir)/portfun.c \
	$(srcdir)/print.c \
	$(srcdir)/rational.c \
	$(srcdir)/read.c \
	$(srcdir)/regexp.c \
	$(srcdir)/resolve.c \
	$(srcdir)/sema.c \
	$(srcdir)/setjmpup.c \
	$(srcdir)/sfs.c \
	$(srcdir)/startup.c \
	$(srcdir)/string.c \
	$(srcdir)/struct.c \
	$(srcdir)/symbol.c \
	$(srcdir)/syntax.c \
	$(srcdir)/thread.c \
	$(srcdir)/type.c \
	$(srcdir)/unwind/libunwind.c \
	$(srcdir)/validate.c \
	$(srcdir)/vector.c

wrong:
	echo Make from the directory above this one

all:
	$(MAKE) mzobjects

mzheaders: $(srcdir)/schemex.h $(srcdir)/schemexm.h $(srcdir)/schemex.inc $(srcdir)/schexn.h schsys.h \
           $(srcdir)/../include/racket.exp $(srcdir)/../include/mzwin.def $(srcdir)/../include/gmzwin.def \
           $(srcdir)/../include/racket3m.exp $(srcdir)/../include/mzwin3m.def 

mzobjects: $(OBJS)

# Linked into 3m:
plain-objs: unwind.@LTO@

$(srcdir)/schemex.h : $(srcdir)/schemef.h $(srcdir)/makex.rkt
	racket $(srcdir)/makex.rkt < $(srcdir)/schemef.h > $(srcdir)/schemex.h

$(srcdir)/schemexm.h : $(srcdir)/schemef.h $(srcdir)/makex.rkt
	racket $(srcdir)/makex.rkt --list < $(srcdir)/schemef.h > $(srcdir)/schemexm.h

$(srcdir)/schemex.inc : $(srcdir)/schemef.h $(srcdir)/makex.rkt
	racket $(srcdir)/makex.rkt --assign < $(srcdir)/schemef.h > $(srcdir)/schemex.inc

$(srcdir)/../include/racket.exp : $(srcdir)/schemef.h $(srcdir)/makex.rkt
	racket $(srcdir)/makex.rkt --exports < $(srcdir)/schemef.h > $(srcdir)/../include/racket.exp

$(srcdir)/../include/racket3m.exp : $(srcdir)/schemef.h $(srcdir)/makex.rkt
	racket $(srcdir)/makex.rkt --exports --precisegc < $(srcdir)/schemef.h > $(srcdir)/../include/racket3m.exp

$(srcdir)/../include/mzwin.def : $(srcdir)/schemef.h $(srcdir)/makex.rkt
	racket $(srcdir)/makex.rkt --winex < $(srcdir)/schemef.h > $(srcdir)/../include/mzwin.def

$(srcdir)/../include/mzwin3m.def : $(srcdir)/schemef.h $(srcdir)/makex.rkt
	racket $(srcdir)/makex.rkt --winex --gwinex --precisegc < $(srcdir)/schemef.h > $(srcdir)/../include/mzwin3m.def

$(srcdir)/../include/gmzwin.def : $(srcdir)/schemef.h $(srcdir)/makex.rkt
	racket $(srcdir)/makex.rkt --gwinex < $(srcdir)/schemef.h > $(srcdir)/../include/gmzwin.def

schsys.h : $(srcdir)/sysname
	echo -n "#define SCHEME_PLATFORM_LIBRARY_SUBPATH " > schsys.h
	$(srcdir)/sysname >> schsys.h

depend:
	makedepend -- $(ALL_CFLAGS) -- $(SRCS)

clean:
	/bin/rm -f *.@LTO@ schsys.h

salloc.@LTO@: $(srcdir)/salloc.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/salloc.c -o salloc.@LTO@
bignum.@LTO@: $(srcdir)/bignum.c $(srcdir)/bgnfloat.inc
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/bignum.c -o bignum.@LTO@
bool.@LTO@: $(srcdir)/bool.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/bool.c -o bool.@LTO@
char.@LTO@: $(srcdir)/char.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/char.c -o char.@LTO@
compenv.@LTO@: $(srcdir)/compenv.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/compenv.c -o compenv.@LTO@
compile.@LTO@: $(srcdir)/compile.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/compile.c -o compile.@LTO@
complex.@LTO@: $(srcdir)/complex.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/complex.c -o complex.@LTO@
dynext.@LTO@: $(srcdir)/dynext.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/dynext.c -o dynext.@LTO@
env.@LTO@: $(srcdir)/env.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/env.c -o env.@LTO@
error.@LTO@: $(srcdir)/error.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/error.c -o error.@LTO@
eval.@LTO@: $(srcdir)/eval.c $(srcdir)/schapp.inc $(srcdir)/schnapp.inc
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/eval.c -o eval.@LTO@
file.@LTO@: $(srcdir)/file.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/file.c -o file.@LTO@
fun.@LTO@: $(srcdir)/fun.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/fun.c -o fun.@LTO@
future.@LTO@: $(srcdir)/future.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/future.c -o future.@LTO@
gmp.@LTO@: $(srcdir)/gmp/gmp.c $(srcdir)/gmp/gmplonglong.h \
           $(srcdir)/gmp/gmp.h $(srcdir)/gmp/gmp-impl.h $(srcdir)/gmp/gmp-mparam.h \
           $(srcdir)/../include/schthread.h $(srcdir)/../sconfig.h
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/gmp/gmp.c -o gmp.@LTO@
hash.@LTO@: $(srcdir)/hash.c $(srcdir)/hamt_subset.inc
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/hash.c -o hash.@LTO@
jit.@LTO@: $(srcdir)/jit.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jit.c -o jit.@LTO@
jitalloc.@LTO@: $(srcdir)/jitalloc.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jitalloc.c -o jitalloc.@LTO@
jitarith.@LTO@: $(srcdir)/jitarith.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jitarith.c -o jitarith.@LTO@
jitcall.@LTO@: $(srcdir)/jitcall.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jitcall.c -o jitcall.@LTO@
jitcommon.@LTO@: $(srcdir)/jitcommon.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jitcommon.c -o jitcommon.@LTO@
jitinline.@LTO@: $(srcdir)/jitinline.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jitinline.c -o jitinline.@LTO@
jitprep.@LTO@: $(srcdir)/jitprep.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jitprep.c -o jitprep.@LTO@
jitstack.@LTO@: $(srcdir)/jitstack.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jitstack.c -o jitstack.@LTO@
jitstate.@LTO@: $(srcdir)/jitstate.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/jitstate.c -o jitstate.@LTO@
letrec_check.@LTO@: $(srcdir)/letrec_check.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/letrec_check.c -o letrec_check.@LTO@
linklet.@LTO@: $(srcdir)/linklet.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/linklet.c -o linklet.@LTO@
list.@LTO@: $(srcdir)/list.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/list.c -o list.@LTO@
marshal.@LTO@: $(srcdir)/marshal.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/marshal.c -o marshal.@LTO@
mzrt.@LTO@: $(srcdir)/mzrt.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/mzrt.c -o mzrt.@LTO@
network.@LTO@: $(srcdir)/network.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/network.c -o network.@LTO@
numarith.@LTO@: $(srcdir)/numarith.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/numarith.c -o numarith.@LTO@
number.@LTO@: $(srcdir)/number.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/number.c -o number.@LTO@
numcomp.@LTO@: $(srcdir)/numcomp.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/numcomp.c -o numcomp.@LTO@
numstr.@LTO@: $(srcdir)/numstr.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/numstr.c -o numstr.@LTO@
optimize.@LTO@: $(srcdir)/optimize.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/optimize.c -o optimize.@LTO@
place.@LTO@: $(srcdir)/place.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/place.c -o place.@LTO@
port.@LTO@: $(srcdir)/port.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/port.c -o port.@LTO@
portfun.@LTO@: $(srcdir)/portfun.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/portfun.c -o portfun.@LTO@
print.@LTO@: $(srcdir)/print.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/print.c -o print.@LTO@
rational.@LTO@: $(srcdir)/rational.c $(srcdir)/ratfloat.inc
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/rational.c -o rational.@LTO@
read.@LTO@: $(srcdir)/read.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/read.c -o read.@LTO@
regexp.@LTO@: $(srcdir)/regexp.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/regexp.c -o regexp.@LTO@
resolve.@LTO@: $(srcdir)/resolve.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/resolve.c -o resolve.@LTO@
sema.@LTO@: $(srcdir)/sema.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/sema.c -o sema.@LTO@
setjmpup.@LTO@: $(srcdir)/setjmpup.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/setjmpup.c -o setjmpup.@LTO@
sfs.@LTO@: $(srcdir)/sfs.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/sfs.c -o sfs.@LTO@
sort.@LTO@: $(srcdir)/sort.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/sort.c -o sort.@LTO@
startup.@LTO@: $(srcdir)/startup.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/startup.c -I.. -I$(srcdir) -o startup.@LTO@
string.@LTO@: $(srcdir)/string.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/string.c -I. -o string.@LTO@
struct.@LTO@: $(srcdir)/struct.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/struct.c -o struct.@LTO@
symbol.@LTO@: $(srcdir)/symbol.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/symbol.c -o symbol.@LTO@
syntax.@LTO@: $(srcdir)/syntax.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/syntax.c -o syntax.@LTO@
thread.@LTO@: $(srcdir)/thread.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/thread.c -o thread.@LTO@
type.@LTO@: $(srcdir)/type.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/type.c -o type.@LTO@
unwind.@LTO@: $(srcdir)/unwind/libunwind.c $(srcdir)/unwind/libunwind.h $(srcdir)/unwind/libunwind_i.h
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/unwind/libunwind.c -o unwind.@LTO@
validate.@LTO@: $(srcdir)/validate.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/validate.c -o validate.@LTO@
vector.@LTO@: $(srcdir)/vector.c
	$(CC) $(ALL_CFLAGS) -c $(srcdir)/vector.c -o vector.@LTO@

gmp_alpha_gcc.@LTO@: $(srcdir)/gmp/gmp_alpha_gcc.s
	$(AS) -o gmp_alpha_gcc.@LTO@ $(srcdir)/gmp/gmp_alpha_gcc.s
gmp_arm_gcc.@LTO@: $(srcdir)/gmp/gmp_arm_gcc.s
	$(CC) -o gmp_arm_gcc.@LTO@ -c $(srcdir)/gmp/gmp_arm_gcc.S

SCONFIG = $(srcdir)/../sconfig.h $(srcdir)/../uconfig.h ../mzconfig.h

# More dependencies

COMMON_HEADERS = $(srcdir)/schpriv.h $(srcdir)/schexn.h $(SCONFIG) $(srcdir)/../include/scheme.h \
                 $(srcdir)/../include/schthread.h $(srcdir)/mzrt.h $(srcdir)/mzrt_cas.inc \
                 $(srcdir)/longdouble/longdouble.h $(srcdir)/../utils/schiptr.h
RKTIO_HEADERS =  $(srcdir)/schrktio.h \
                 $(srcdir)/../../rktio/rktio.h $(srcdir)/../../rktio/rktio_platform.h \
                 ../rktio/rktio_config.h

JIT_HEADERS = $(srcdir)/jit.h $(srcdir)/jitfpu.h $(srcdir)/stypes.h \
        $(srcdir)/lightning/i386/core.h $(srcdir)/lightning/i386/core-common.h \
        $(srcdir)/lightning/i386/asm.h $(srcdir)/lightning/i386/asm-common.h \
        $(srcdir)/lightning/i386/funcs.h $(srcdir)/lightning/i386/funcs-common.h \
        $(srcdir)/lightning/i386/fp.h $(srcdir)/lightning/i386/fp-sse.h \
	$(srcdir)/lightning/i386/fp-common.h $(srcdir)/lightning/i386/fp-extfpu.h \
        $(srcdir)/lightning/ppc/core.h $(srcdir)/lightning/ppc/core-common.h \
        $(srcdir)/lightning/ppc/asm.h $(srcdir)/lightning/ppc/asm-common.h \
        $(srcdir)/lightning/ppc/funcs.h $(srcdir)/lightning/ppc/funcs-common.h \
        $(srcdir)/lightning/ppc/fp.h $(srcdir)/lightning/ppc/fp-common.h \
        $(srcdir)/lightning/arm/core.h $(srcdir)/lightning/arm/core-common.h \
        $(srcdir)/lightning/arm/asm.h $(srcdir)/lightning/arm/asm-common.h \
        $(srcdir)/lightning/arm/funcs.h $(srcdir)/lightning/arm/funcs-common.h \
        $(srcdir)/lightning/arm/fp.h $(srcdir)/lightning/arm/fp-common.h \
        $(srcdir)/lightning/arm/fp-vfp.h $(srcdir)/lightning/arm/fp-swf.h \
        $(srcdir)/future.h $(srcdir)/jit_ts.c $(srcdir)/jit_ts_protos.h

salloc.@LTO@: $(COMMON_HEADERS) $(RKTIOHEADERS) $(srcdir)/mzmark_salloc.inc
bignum.@LTO@: $(COMMON_HEADERS) \
          $(srcdir)/stypes.h    
bool.@LTO@: $(COMMON_HEADERS) \
          $(srcdir)/stypes.h $(srcdir)/mzeqchk.inc
char.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h  $(srcdir)/schuchar.inc
compenv.@LTO@: $(COMMON_HEADERS)  \
         $(srcdir)/stypes.h $(srcdir)/mzmark_compenv.inc   
compile.@LTO@: $(COMMON_HEADERS)  \
         $(srcdir)/stypes.h  $(srcdir)/mzmark_compile.inc
complex.@LTO@: $(COMMON_HEADERS)  \
         $(srcdir)/stypes.h    
dynext.@LTO@: $(COMMON_HEADERS)  \
         $(srcdir)/stypes.h $(srcdir)/schemef.h \
         $(srcdir)/../../version/racket_version.h
env.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h  $(srcdir)/schminc.h $(srcdir)/mzmark_env.inc
error.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h  
eval.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_eval.inc \
        $(srcdir)/schmach.h $(srcdir)/mzstkchk.h $(srcdir)/schrunst.h \
        $(srcdir)/future.h
file.@LTO@: $(COMMON_HEADERS) $(RKTIOHEADERS) \
        $(srcdir)/stypes.h
fun.@LTO@: $(COMMON_HEADERS) $(RKTIOHEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_fun.inc $(srcdir)/schmap.inc \
        $(srcdir)/future.h
future.@LTO@: $(COMMON_HEADERS) $(srcdir)/future.h $(SCONFIG) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_future.inc \
        $(srcdir)/jit_ts_future_glue.c $(srcdir)/jit_ts_runtime_glue.c $(srcdir)/jit_ts_protos.h
hash.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_hash.inc
jit.@LTO@: $(COMMON_HEADERS) $(JIT_HEADERS)  $(srcdir)/mzmark_jit.inc
jitalloc.@LTO@: $(COMMON_HEADERS) $(JIT_HEADERS)
jitarith.@LTO@: $(COMMON_HEADERS) $(JIT_HEADERS)
jitcall.@LTO@: $(COMMON_HEADERS) $(JIT_HEADERS)
jitcommon.@LTO@: $(COMMON_HEADERS) $(JIT_HEADERS)
jitinline.@LTO@: $(COMMON_HEADERS) $(JIT_HEADERS)
jitprep.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h
jitstack.@LTO@: $(COMMON_HEADERS) $(JIT_HEADERS) $(srcdir)/codetab.inc \
        $(srcdir)/unwind/libunwind.h
jitstate.@LTO@: $(COMMON_HEADERS) $(JIT_HEADERS)
letrec_check.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h  
linklet.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h
list.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h  
marshal.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h
mzrt.@LTO@: $(COMMON_HEADERS)
network.@LTO@: $(COMMON_HEADERS) $(RKTIO_HEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_network.inc
numarith.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/nummacs.h
number.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/nummacs.h \
         $(srcdir)/longdouble/longdouble.c
numcomp.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/nummacs.h
numstr.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h  $(srcdir)/random.inc $(srcdir)/newrandom.inc
optimize.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/mzmark_optimize.inc
place.@LTO@: $(COMMON_HEADERS) $(RKTIO_HEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_place.inc
port.@LTO@: $(COMMON_HEADERS) $(RKTIO_HEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_port.inc
portfun.@LTO@: $(COMMON_HEADERS) $(RKTIO_HEADERS) $(srcdir)/../../version/racket_version.h \
        $(srcdir)/stypes.h $(srcdir)/mzmark_portfun.inc
print.@LTO@: $(COMMON_HEADERS) $(srcdir)/stypes.h $(srcdir)/schcpt.h \
          $(srcdir)/../../version/racket_version.h $(SCONFIG) $(srcdir)/mzmark_print.inc \
          $(srcdir)/print_vector.inc 
thread.@LTO@: $(COMMON_HEADERS) $(RKTIO_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/mzmark_thread.inc
rational.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h    
read.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/schcpt.h $(srcdir)/../../version/racket_version.h $(srcdir)/schminc.h \
        $(srcdir)/stypes.h $(srcdir)/mzmark_read.inc
regexp.@LTO@:  $(COMMON_HEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_regexp.inc $(srcdir)/schrx.h
resolve.@LTO@:  $(COMMON_HEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_resolve.inc
setjmpup.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h   $(srcdir)/schmach.h
sfs.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/mzmark_sfs.inc
sort.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h
startup.@LTO@: $(COMMON_HEADERS) $(srcdir)/../../version/racket_version.h \
         $(srcdir)/stypes.h  $(srcdir)/schminc.h $(srcdir)/startup.inc ../cstartup.inc \
         $(srcdir)/startup-glue.inc
string.@LTO@: $(COMMON_HEADERS) $(RKTIO_HEADERS) \
         $(srcdir)/stypes.h    $(srcdir)/../../version/racket_version.h $(srcdir)/mzmark_string.inc $(srcdir)/strops.inc \
         $(srcdir)/schustr.inc $(srcdir)/systype.inc
struct.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/mzmark_struct.inc
syntax.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/mzmark_syntax.inc
symbol.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h   
sema.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/mzmark_sema.inc
type.@LTO@: $(COMMON_HEADERS) \
        $(srcdir)/stypes.h $(srcdir)/mzmark_type.inc
vector.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h
validate.@LTO@: $(COMMON_HEADERS) \
         $(srcdir)/stypes.h $(srcdir)/mzmark_validate.inc

# If "cstartup.inc" hasn't been built, yet, create it as
# a redirect to "startup.inc"
../cstartup.inc:
	echo '#include "startup.inc"' > ../cstartup.inc
